Dafny: Statically Verifying Functional Correctness
نویسنده
چکیده
This report presents the Dafny language and verifier, with a focus on describing the main features of the language, including preand postconditions, assertions, loop invariants, termination metrics, quantifiers, predicates and frames. Examples of Dafny code are provided to illustrate the use of each feature, and an overview of how Dafny translates programming code into a mathematical proof of functional verification is presented. The report also includes references to useful resources on Dafny, with mentions of related works in the domain of specification languages. The research work disclosed in this publication is funded by the MASTER it! Scholarship Scheme (Malta). The scholarship is part-financed by the European Union European Social Fund (ESF) under Operational Programme II Cohesion Policy 2007-2013, “Empowering People for More Jobs and a Better Quality of Life”.
منابع مشابه
Quicksort Revisited - Verifying Alternative Versions of Quicksort
We verify the correctness of a recursive version of Tony Hoare’s quicksort algorithm using the Hoare-logic based verification tool Dafny. We then develop a non-standard, iterative version which is based on a stack of pivot-locations rather than the standard stack of ranges. We outline an incomplete Dafny proof for the latter.
متن کاملDafny: An Automatic Program Verifier for Functional Correctness
Traditionally, the full verification of a program’s functional correctness has been obtained with pen and paper or with interactive proof assistants, whereas only reduced verification tasks, such as extended static checking, have enjoyed the automation offered by satisfiability-modulo-theories (SMT) solvers. More recently, powerful SMT solvers and well-designed program verifiers are starting to...
متن کاملA Review of Verification Benchmark Solutions Using Dafny
Proposed solutions to a collection of software verification “challenge problems” have been undertaken by a group using Dafny. The techniques employed to solve these problems present insights into the Dafny specification and verification process. Solutions to key problems including binary search of an array and proof of correctness of data representation are reviewed, with observations about lan...
متن کاملFormalizing and Verifying a Modern Build Language
CLOUDMAKE is a software utility that automatically builds executable programs and libraries from source code—amodernMAKE utility. Its design gives rise to a number of possible optimizations, like cached builds, and the executables to be built are described using a functional programming language. This paper formally and mechanically verifies the correctness of central CLOUDMAKE algorithms. The ...
متن کاملUnion, intersection and refinement types and reasoning about type disjointness for secure protocol implementations
We present a new type system for verifying the security of reference implementations of cryptographic protocols written in a core functional programming language. The type system combines prior work on refinement types, with union, intersection, and polymorphic types, and with the novel ability to reason statically about the disjointness of types. The increased expressivity enables the analysis...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- CoRR
دوره abs/1412.4395 شماره
صفحات -
تاریخ انتشار 2014